[アップデート] Amazon GuardDuty で S3 への不審なアクティビティを脅威検出できるようになりました!

[アップデート] Amazon GuardDuty で S3 への不審なアクティビティを脅威検出できるようになりました!

待望の GuardDuty による S3 への脅威検出
Clock Icon2020.07.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS コンソールを見ていたところ Amazon GuardDuty が S3 データアクセスイベントの脅威検出に対応していました。

まだ公式ドキュメント等が更新されていないようで、これ以上の情報がありません。。ひとまず「速報」としてシェアいたします。

2020.08.01
・公式ブログが公開されましたので追記しました

あわせて、公式ドキュメントも更新されています。

何がうれしいのか

これまで S3 データアクセスに対する脅威検出は Amazon Macie を利用する必要がありましたが、旧バージョンの Amazon Macie(現在の Amazon Macie Classic)が利用できるリージョンはバージニアとオレゴンのみでした。

また、先日 Amazon Macie は新バージョンになり東京リージョンで GA されていますが、新バージョンの Amazon Macie では Amazon Macie Classic でサポートされていた S3 データアクセスイベント(CloudTrail)に対する脅威検出機能は含まれていませんでした。

Amazon Macie のブログでさらっと紹介されていた、以下の部分が今回のアップデートのようですね!

The anomaly detection features monitoring S3 data access activity previously available in Macie are now in private beta as part of Amazon GuardDuty, and have been enhanced to include deeper capabilities to protect your data in S3.

で、何ができるの?

冒頭の管理コンソールのメッセージを要約すると、S3 保護機能ではアカウント内のすべてのバケットのデータアクセスイベントを継続的に監視することで、以下のような悪意のある不審なアクティビティを検出することができます。

  • Tor ノードや異常なジオロケーションからの S3 データへのアクセス
  • バケットを公開する API コール
  • S3 ブロックパブリックアクセスなどの無効化
  • 誤った S3 バケットのパーミッションを発見しようとする API コール

ブロックパブリックアクセスの無効化は、以前から Policy:IAMUser/S3BlockPublicAccessDisabled という検出項目で提供されていましたが、2 ヶ月ほどまでに Policy:S3/BucketBlockPublicAccessDisabled に変更されているようです。

検出タイプ

2020.08.01
・検出タイプを追記しました

今回のアップデートで追加された S3 保護のための検出タイプは、以下のとおりです。

検出タイプ 説明
Discovery:S3/BucketEnumeration.Unusual IAMエンティティがネットワーク内のS3バケットを検出するために使用されるS3 APIを呼び出し
Discovery:S3/MaliciousIPCaller.Custom カスタムの脅威リストのIPアドレスからS3 APIを呼び出し
Discovery:S3/TorIPCaller TorノードのIPアドレスからS3 APIを呼び出し
Exfiltration:S3/ObjectRead.Unusual IAMエンティティが不審な方法でS3 APIを呼び出し
Impact:S3/PermissionsModification.Unusual IAMエンティティがAPIを呼び出して、1つ以上のS3リソースの権限を変更した
Impact:S3/ObjectDelete.Unusual IAMがS3バケット内のデータを削除するために使用したAPIを呼び出し
PenTest:S3/KaliLinux Kali LinuxマシンからS3 APIを呼び出し
PenTest:S3/ParrotLinux Parrot Security LinuxマシンからS3 APIを呼び出し
PenTest:S3/PentooLinux Pentoo LinuxマシンからS3 APIを呼び出し
Policy:S3/AccountBlockPublicAccessDisabled IAMエンティティがアカウントのS3ブロックパブリックアクセスを無効にするために使用されるAPIを呼び出し
(既存)Policy:S3/BucketBlockPublicAccessDisabled IAMエンティティがバケット上のS3ブロックのパブリックアクセスを無効にするために使用されるAPIを呼び出し
Policy:S3/BucketAnonymousAccessGranted IAMプリンシパルがバケットポリシーまたはACLを変更することで、インターネットへのS3バケットへのアクセスを許可した
Policy:S3/BucketPublicAccessGranted IAMプリンシパルがバケットポリシーまたはACLを変更することで、すべてのAWSユーザーにS3バケットへのパブリックアクセスを許可した
Stealth:S3/ServerAccessLoggingDisabled バケットに対してS3サーバーのアクセスログが無効になっていた
UnauthorizedAccess:S3/MaliciousIPCaller.Custom カスタムの脅威リストのIPアドレスからS3 APIが起動された
UnauthorizedAccess:S3/TorIPCaller TorノードのIPアドレスからS3 APIを呼び出し

やってみる

まだ詳細情報がありませんが、とりあえず試してみましょう。

S3 保護

GuardDuty のコンソールから [S3 保護] を開きます。最初は以下のように 「このアカウントでは S3 保護が有効になっていません」と表示されていますので 有効化 をクリックします。

(まだ価格設定などが更新されていないため不明ですが、30 日間の無料トライアルという言葉を信じて有効化しました)

続いて S3 保護を有効化 をクリックします。

設定はこれだけのようですね。

今回のアカウントでは既に GuardDuty が有効であったため、S3 保護を有効化する必要がありましたが、今後は新たに GuardDuty を有効化する際はデフォルトで S3 保護が有効になっています。100万イベントあたり $1.04 の課金が発生しますので、もし、S3 保護を利用したくない場合は無効化が必要となります。

ブロックパブリックアクセスの無効化

ブロックパブリックアクセスを設定している S3 バケットの設定をオフにしてみると、Policy:S3/BucketBlockPublicAccessDisabled として検出されました。これは従来の Policy:IAMUser/S3BlockPublicAccessDisabled がリネームされたものですね。

バケットをパブリック公開

1 つのバケットをパブリック公開できるようにバケットポリシーを書き換えてみると、 Policy:S3/BucketAnonymousAccessGranted として検出されました。

異常アクセス検出

個人的に一番試したかった S3 への異常アクセス検出ですが、執筆時点ではうまく検出できていません。有効化して直ぐだから判断できないのか、個別にオブジェクトレベルのロギング設定が必要なのかなど、設定方法等が公式ドキュメントに公開されましたら改めて検証、追記したいと思います。

2020.08.01
・ユーザー側でのログ設定は不要であることを追記しました

公式ブログによると、S3 保護によるアクセス分析の利用においてユーザー側でオブジェクトレベルのロギング設定をする必要ない!とのことです。VPC フローログなど同様ですね。これはありがたい!

In this way, you don’t need to manually enable or configure S3 data event logging in AWS CloudTrail to take advantage of this new capability.

Tor Browser で AWS コンソールにログインし、S3 バケットの操作を行ったところ Discovery:S3/TorIPCaller として検出されることが確認できました!

料金

執筆時点において、まだ価格ページが更新されていないので、どのような料金設定か判りませんが、[使用状況] をみると、[S3 データイベント] として別項目が設けられているので、従来と異なる料金設定となりそうですね。

2020.08.01
・価格表を追記しました

以下、東京リージョンでの価格です。

AWS CloudTrail S3データイベント分析 料金
最初の5億イベント/月 100万イベントあたり$1.04
次の45億イベント/月 100万イベントあたり$0.52
50億以上のイベント/月 100万イベントあたり$0.26

さいごに

まだ価格や設定方法等を含めた情報が公開されていないので、あまり詳細な検証が出来ませんでしたが、ひとまず速報ということでご紹介しました!

これまで S3 の不正アクセス検出をしたい、という相談はたくさんいただいていたので、このアップデートは大注目しています!公式の追加情報を待ちましょう!

以上!大阪オフィスの丸毛(@marumo1981)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.